exports.Client = new Class(/** @lends CaboCity.t.Client# */{
	/**
	 * @class Objeto con toda la información del cliente.
	 * @constructs
	 * 
	 * @property {CaboCity.Map} map Mapa principal del usuario.
	 * 
	 * @param {Socket-io#Socket} socket
	 * 
	 * */
	initialize: function(id, socket){
		console.log("creando cliente.");
		
	}
	
	/**
	 * Estado del cliente.
	 * @type Integer
	 * @public
	 * */
	,state: 0
	
	/**
	 * Establece cual es el mapa del que el jugador es propietario.
	 * @public
	 * 
	 * @param {CaboCity.Map} map Mapa principal del usuario.
	 * */
	,setMap: function(map){
		
	}
	/**
	 * Obtiene el identificador del mapa
	 * @public
	 * */
	,getMap: function(){
		return this.map;
	}
	
	,disconnect: function(){
		//save everything from client that needs be saved.
	}
	,sayHello: function(){
		console.log("Digo hola! :D");
	}
	
	
	,iniExtensions : function(){
	}
	,coor2vec: function(coor){
		if(coor.x >= this.data.mapSize.x || coor.x < 0) return -1;
		if(coor.y >= this.data.mapSize.y || coor.y < 0) return -1;
		var vec = coor.y*this.data.mapSize.x + coor.x;
		return vec;
	}
	,vec2coor: function(vec){
		var coor = {x: vec%this.data.mapSize.x , y: Math.floor(vec/this.data.mapSize.x)  };
		return coor;
	}
});

//Create new client information
exports.newClient = function(){

	console.log("nuevo cliente.");
	return new Client();
}
